package com.litan.chapterfive;

import android.annotation.SuppressLint;
import android.content.Context;
import android.content.res.TypedArray;
import android.graphics.Canvas;
import android.util.AttributeSet;
import android.view.KeyEvent;
import android.widget.TextView;

import java.text.NumberFormat;

@SuppressLint("AppCompatCustomView")
public class PriceTextView extends TextView {

    private static NumberFormat CURRENT_FORMAT =
            NumberFormat.getCurrencyInstance();
    private float mPrice;

    public PriceTextView(Context context){
        this(context, null);
    }

    public PriceTextView(Context context, AttributeSet attrs){
        this(context, attrs, 0);
    }

    //当样式具有属性(即price_textview.xml 具有属性 app:price)且从XML膨胀View时调用的构造方法
    public PriceTextView(Context context, AttributeSet attrs, int defStyleAttr){
        super(context, attrs, defStyleAttr);

        // 自定义初始化工作
        final TypedArray a = context.obtainStyledAttributes(attrs,
                R.styleable.PriceTextView, // 在res/values/attrs.xml中<declear-styleable>中定义的名字
                defStyleAttr,
                0);// 一个可选的R.style 引用，用于 View 的默认样式值

        if (a.hasValue(R.styleable.PriceTextView_price)) { // 即<declear-styleable>存在<attr name="price">时，
            setPrice(a.getFloat(R.styleable.PriceTextView_price, 0)); //将price的默认值设置为 0
        }
        a.recycle();
    }

    public void setPrice(float price){
        mPrice = price;
    }

    public float getPrice(){
        return mPrice;
    }


    @Override
    protected void onDraw(Canvas canvas) {
        super.onDraw(canvas);

        // 在文字的上方绘制内容
    }

    @Override
    public boolean onKeyDown(int keyCode, KeyEvent event) {

        // 执行一些特殊的处理
        // 基于特定的按键
        return super.onKeyDown(keyCode, event);
    }
}
